#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : config_spider
import scrapy
import re
from apps.tax_policy.tax_policy.items import NetTaxPolicyItem as Item, urllib
from apps.tax_policy.tax_policy.spiders.base_spider.base_tax_policy_spider import BaseTaxPolicySpider
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
import json


class YunnanYgycPolicy(BaseTaxPolicySpider):
    name = 'yunnan_ygyc_policy'
    
    province = '云南省'
    # city = '昆明市'
    # county = '安宁市'
    # park = ''
    # source = '安宁市人民政府'
    url = 'https://czt.yn.gov.cn/ygyc/#/policy'
    key = "7c01d3329abd938e"
    region_map = {
        '530101': '市辖区', '530102': '五华区', '530103': '盘龙区', '530111': '官渡区', '530112': '西山区', '530113': '东川区', '530114': '呈贡区', '530115': '昆明市经开区', '530116': '昆明市高新技术产业区', '530117': '滇池国家旅游度假区', '530118': '滇中新区', '530119': '阳宗海风景名胜区', '530120': '磨憨—磨丁经合区', '530121': '高新技术产业区', '530122': '晋宁县', '530124': '富民县', '530125': '宜良县', '530126': '石林彝族自治县', '530127': '嵩明县', '530128': '禄劝彝族苗族自治县', '530129': '寻甸回族彝族自治县', '530177': '综保区', '530181': '安宁市', '530197': '七甸工业园区', '530198': '海口工业园区', '530199': '空港经济区', '530301': '市辖区', '530302': '麒麟区', '530303': '沾益区', '530321': '马龙区', '530322': '陆良县', '530323': '师宗县', '530324': '罗平县', '530325': '富源县', '530326': '会泽县', '530381': '宣威市', '530382': '曲靖市经开区', '530401': '市辖区', '530402': '红塔区', '530403': '江川区', '530422': '澄江市', '530423': '通海县', '530424': '华宁县', '530425': '易门县', '530426': '峨山彝族自治县', '530427': '新平彝族傣族自治县', '530428': '元江哈尼族彝族傣族自治县', '530450': '玉溪市高新区', '530481': '澄江市', '530501': '市辖区', '530502': '隆阳区', '530521': '施甸县', '530523': '龙陵县', '530524': '昌宁县', '530581': '腾冲市', '530590': '高黎贡山旅游度假区', '530591': '保山工贸园区', '530601': '市辖区', '530602': '昭阳区', '530621': '鲁甸县', '530622': '巧家县', '530623': '盐津县', '530624': '大关县', '530625': '永善县', '530626': '绥江县', '530627': '镇雄县', '530628': '彝良县', '530629': '威信县', '530630': '水富县', '530701': '市辖区', '530702': '古城区', '530721': '玉龙纳西族自治县', '530722': '永胜县', '530723': '华坪县', '530724': '宁蒗彝族自治县', '530801': '市辖区', '530802': '思茅区', '530821': '宁洱哈尼族彝族自治县', '530822': '墨江哈尼族自治县', '530823': '景东彝族自治县', '530824': '景谷傣族彝族自治县', '530825': '镇沅彝族哈尼族拉祜族自治县', '530826': '江城哈尼族彝族自治县', '530827': '孟连傣族拉祜族佤族自治县', '530828': '澜沧拉祜族自治县', '530829': '西盟佤族自治县', '530901': '市辖区', '530902': '临翔区', '530921': '凤庆县', '530922': '云县', '530923': '永德县', '530924': '镇康县', '530925': '双江拉祜族佤族布朗族傣族自治县', '530926': '耿马傣族佤族自治县', '530927': '沧源佤族自治县', '530928': '临沧工业园区', '530929': '边境经济合作区', '532301': '楚雄市', '532322': '双柏县', '532323': '牟定县', '532324': '南华县', '532325': '姚安县', '532326': '大姚县', '532327': '永仁县', '532328': '元谋县', '532329': '武定县', '532331': '禄丰县', '532332': '楚雄高新技术产业区', '532501': '个旧市', '532502': '开远市', '532503': '蒙自市', '532504': '弥勒市', '532523': '屏边苗族自治县', '532524': '建水县', '532525': '石屏县', '532527': '泸西县', '532528': '元阳县', '532529': '红河县', '532530': '金平苗族瑶族傣族自治县', '532531': '绿春县', '532532': '河口瑶族自治县', '532601': '文山市', '532622': '砚山县', '532623': '西畴县', '532624': '麻栗坡县', '532625': '马关县', '532626': '丘北县', '532627': '广南县', '532628': '富宁县', '532801': '景洪市', '532822': '勐海县', '532823': '勐腊县', '532824': '景洪工业园区', '532825': '西双版纳旅游度假区', '532826': '中国老挝磨憨—磨丁经济合作区', '532827': '景洪工业和信息化产业集聚区勐养片区', '532828': '云南勐海产业园区', '532829': '云南勐腊（磨憨）重点开发开放试验区', '532901': '大理市', '532922': '漾濞彝族自治县', '532923': '祥云县', '532924': '宾川县', '532925': '弥渡县', '532926': '南涧彝族自治县', '532927': '巍山彝族回族自治县', '532928': '永平县', '532929': '云龙县', '532930': '洱源县', '532931': '剑川县', '532932': '鹤庆县', '532933': '大理州经济开发区', '533102': '瑞丽市', '533103': '芒市', '533122': '梁河县', '533123': '盈江县', '533124': '陇川县', '533301': '泸水市', '533323': '福贡县', '533324': '贡山独龙族怒族自治县', '533325': '兰坪白族普米族自治县', '533401': '香格里拉市', '533422': '德钦县', '533423': '维西傈僳族自治县', '53': '云南省', '5301': '昆明市', '5303': '曲靖市', '5304': '玉溪市', '5305': '保山市', '5306': '昭通市', '5307': '丽江市', '5308': '普洱市', '5309': '临沧市', '5323': '楚雄彝族自治州', '5325': '红河哈尼族彝族自治州', '5326': '文山壮族苗族自治州', '5328': '西双版纳傣族自治州', '5329': '大理白族自治州', '5331': '德宏傣族景颇族自治州', '5333': '怒江傈僳族自治州', '5334': '迪庆藏族自治州', '530102001': '华山街道办事处', '530102002': '护国街道办事处', '530102003': '大观街道办事处', '530102004': '龙翔街道办事处', '530102005': '丰宁街道办事处', '530102006': '莲华街道办事处', '530102007': '红云街道办事处', '530102008': '黑林铺街道办事处', '530102009': '普吉街道办事处', '530102010': '西翥街道办事处', '530102401': '昆明国家高新技术产业开发区', '530103001': '拓东街道办事处', '530103002': '鼓楼街道办事处', '530103003': '东华街道办事处', '530103004': '联盟街道办事处', '530103005': '金辰街道办事处', '530103006': '青云街道办事处', '530103007': '龙泉街道办事处', '530103008': '茨坝街道办事处', '530103009': '双龙街道办事处', '530103010': '松华街道办事处', '530103011': '盘龙区滇源街道办事处', '530103012': '盘龙区阿子营街道办事处', '530111001': '关上街道办事处', '530111002': '太和街道办事处', '530111003': '吴井街道办事处', '530111004': '金马街道办事处', '530111005': '小板桥街道办事处', '530111006': '官渡街道办事处', '530111007': '矣六街道办事处', '530111008': '六甲街道办事处', '530111009': '大板桥街道办事处', '530111010': '阿拉街道办事处', '530111402': '昆明经济技术开发区', '530112001': '西苑街道办事处', '530112002': '马街街道办事处', '530112003': '金碧街道办事处', '530112004': '永昌街道办事处', '530112005': '前卫街道办事处', '530112006': '福海街道办事处', '530112007': '棕树营街道办事处', '530112008': '碧鸡街道办事处', '530112009': '海口街道办事处', '530112010': '团结街道办事处', '530112403': '昆明滇池国家旅游度假区', '530113001': '铜都街道办事处', '530113102': '汤丹镇', '530113103': '因民镇', '530113104': '阿旺镇', '530113105': '乌龙镇', '530113106': '红土地镇', '530113107': '拖布卡镇', '530113201': '舍块乡', '530114001': '龙城街道办事处', '530114002': '洛龙街道办事处', '530114003': '斗南街道办事处', '530114004': '乌龙街道办事处', '530114005': '吴家营街道办事处', '530114006': '雨花街道办事处', '530114007': '七甸街道办事处', '530114008': '洛羊街道办事处', '530114009': '大渔街道办事处', '530114010': '马金铺街道办事处', '530115001': '阿拉街道', '530115002': '洛羊街道', '530116001': '国家高新技术产业开发区', '530117001': '滇池国家旅游度假区', '530119001': '七甸街道', '530119002': '汤池街道', '530119003': '阳宗镇', '530122001': '昆阳街道办事处', '530122102': '晋城镇', '530122103': '二街镇', '530122105': '上蒜镇', '530122106': '六街镇', '530122201': '双河彝族乡', '530122202': '夕阳彝族乡', '530124001': '永定街道办事处', '530124103': '罗免镇', '530124104': '赤鹫镇', '530124105': '东村镇', '530124106': '款庄镇', '530124107': '散旦镇', '530125001': '匡远街道办事处', '530125002': '汤池街道办事处', '530125102': '北古城镇', '530125103': '狗街镇', '530125105': '竹山镇', '530125106': '马街镇', '530125201': '耿家营乡', '530125202': '九乡乡', '530125404': '昆明阳宗海风景名胜区', '530125405': '南羊街道', '530126001': '鹿阜街道办事处', '530126105': '西街口镇', '530126106': '长湖镇', '530126107': '圭山镇', '530126201': '大可乡', '530127001': '嵩阳街道办事处', '530127102': '小街镇', '530127103': '杨林镇', '530127104': '牛栏江镇', '530127401': '嵩明杨林经济技术开发区', '530127402': '云南省嵩明职业教育基地', '530128001': '屏山街道办事处', '530128102': '撒营盘镇', '530128103': '转龙镇', '530128104': '茂山镇', '530128105': '团街镇', '530128106': '中屏镇', '530128107': '皎平渡镇', '530128108': '乌东德镇', '530128109': '翠华镇', '530128110': '九龙镇', '530128204': '云龙乡', '530128207': '汤郎乡', '530128208': '马鹿塘乡', '530128211': '则黑乡', '530128212': '乌蒙乡', '530128213': '雪山乡', '530128401': '禄劝工业园区管理委员会', '530129001': '仁德街道办事处', '530129103': '羊街镇', '530129104': '柯渡镇', '530129105': '倘甸镇', '530129106': '功山镇', '530129107': '河口镇', '530129108': '七星镇', '530129109': '先锋镇', '530129110': '鸡街镇', '530129111': '凤合镇', '530129205': '六哨乡', '530129208': '联合乡', '530129209': '金源乡', '530129210': '甸沙乡', '530129211': '金所工业园区', '530129405': '昆明倘甸产业园区轿子山旅游开发区', '530177001': '综保区', '530181001': '连然街道办事处', '530181002': '金方街道办事处', '530181003': '八街街道办事处', '530181004': '温泉街道办事处', '530181005': '青龙街道办事处', '530181006': '禄脿街道办事处', '530181007': '草铺街道办事处', '530181008': '太平新城街道办事处', '530181009': '县街街道办事处', '530197001': '七甸工业园区', '530198001': '海口工业园区', '530199001': '大板桥街道', '530199002': '空港经济区管委会', '530302001': '南宁街道办事处', '530302002': '建宁街道办事处', '530302003': '白石江街道办事处', '530302004': '寥廓街道办事处', '530302005': '西城街道办事处', '530302006': '益宁街道办事处', '530302007': '文华街道办事处', '530302008': '太和街道办事处', '530302009': '潇湘街道办事处', '530302010': '翠峰街道办事处', '530302011': '三宝街道办事处', '530302012': '沿江街道办事处', '530302013': '珠街街道办事处', '530302102': '越州镇', '530302103': '东山镇', '530302104': '茨营镇', '530303001': '西平街道办事处', '530303002': '龙华街道办事处', '530303003': '金龙街道办事处', '530303004': '花山街道办事处', '530303101': '白水镇', '530303102': '盘江镇', '530303201': '炎方乡', '530303202': '播乐乡', '530303203': '大坡乡', '530303204': '菱角乡', '530303205': '德泽乡', '530321001': '通泉街道', '530321002': '鸡头村街道', '530321003': '王家庄街道', '530321004': '张安屯街道', '530321005': '旧县街道', '530321103': '马过河镇', '530321105': '纳章镇', '530321201': '马鸣乡', '530321202': '大庄乡', '530321203': '月望乡', '530322001': '中枢街道', '530322002': '同乐街道', '530322102': '板桥镇', '530322103': '三岔河镇', '530322104': '马街镇', '530322105': '召夸镇', '530322106': '大莫古镇', '530322107': '芳华镇', '530322108': '小百户镇', '530322201': '活水乡', '530322202': '龙海乡', '530322501': '陆良华侨管理区（镇）', '530323001': '丹凤街道办事处', '530323002': '漾月街道办事处', '530323003': '大同街道办事处', '530323102': '雄壁镇', '530323103': '葵山镇', '530323104': '彩云镇', '530323105': '竹基镇', '530323202': '龙庆乡', '530323203': '五龙乡', '530323204': '高良乡', '530324001': '罗雄街道办事处', '530324002': '腊山街道办事处', '530324003': '九龙街道办事处', '530324102': '板桥镇', '530324103': '马街镇', '530324104': '富乐镇', '530324106': '阿岗镇', '530324201': '大水井乡', '530324202': '鲁布革乡', '530324203': '旧屋基乡', '530324204': '钟山乡', '530324205': '长底乡', '530324206': '老厂乡', '530325001': '中安街道', '530325002': '胜境街道', '530325102': '营上镇', '530325103': '黄泥河镇', '530325104': '竹园镇', '530325105': '后所镇', '530325106': '大河镇', '530325107': '墨红镇', '530325108': '富村镇', '530325109': '十八连山镇', '530325110': '老厂镇', '530325201': '古敢乡', '530326001': '古城街道办事处', '530326002': '宝云街道办事处', '530326003': '金钟街道办事处', '530326102': '娜姑镇', '530326103': '迤车镇', '530326104': '乐业镇', '530326105': '矿山镇', '530326106': '者海镇', '530326107': '大井镇', '530326108': '待补镇', '530326201': '大海乡', '530326202': '老厂乡', '530326203': '五星乡', '530326204': '大桥乡', '530326205': '纸厂乡', '530326206': '马路乡', '530326207': '火红乡', '530326208': '新街乡', '530326209': '雨碌乡', '530326210': '鲁纳乡', '530326211': '上村乡', '530326212': '驾车乡', '530326213': '田坝乡', '530381001': '宛水街道办事处', '530381002': '西宁街道办事处', '530381003': '双龙街道办事处', '530381004': '虹桥街道办事处', '530381005': '丰华街道办事处', '530381006': '板桥街道办事处', '530381007': '来宾街道办事处', '530381008': '凤凰街道办事处', '530381102': '格宜镇', '530381103': '田坝镇', '530381104': '羊场镇', '530381106': '倘塘镇', '530381107': '落水镇', '530381108': '务德镇', '530381109': '海岱镇', '530381110': '龙场镇', '530381111': '龙潭镇', '530381112': '热水镇', '530381113': '宝山镇', '530381114': '东山镇', '530381201': '普立乡', '530381202': '西泽乡', '530381203': '得禄乡', '530381204': '杨柳乡', '530381205': '双河乡', '530381206': '乐丰乡', '530381207': '文兴乡', '530381208': '阿都乡', '530382001': '西城街道', '530402001': '玉兴路街道办事处', '530402002': '凤凰路街道办事处', '530402003': '玉带路街道办事处', '530402004': '北城街道', '530402005': '春和街道', '530402006': '李棋街道', '530402007': '大营街街道', '530402008': '研和街道', '530402009': '高仓街道', '530402201': '小石桥乡', '530402202': '洛河乡', '530403001': '大街街道', '530403101': '江城镇', '530403102': '前卫镇', '530403103': '九溪镇', '530403104': '路居镇', '530403201': '安化彝族乡', '530403202': '雄关乡', '530422001': '凤麓街道办事处', '530422002': '龙街街道办事处', '530422101': '右所镇', '530422102': '阳宗镇', '530422103': '海口镇', '530422104': '九村镇', '530423001': '秀山街道办事处', '530423002': '九龙街道办事处', '530423101': '杨广镇', '530423102': '河西镇', '530423103': '四街镇', '530423104': '纳古镇', '530423201': '里山乡', '530423202': '高大乡', '530423203': '兴蒙乡', '530424001': '宁州街道办事处', '530424102': '盘溪镇', '530424103': '华溪镇', '530424104': '青龙镇', '530424201': '通红甸乡', '530425001': '龙泉街道办事处', '530425002': '六街街道办事处', '530425100': '绿汁镇', '530425201': '浦贝彝族乡', '530425202': '十街彝族乡', '530425203': '铜厂彝族乡', '530425204': '小街乡', '530426001': '双江街道', '530426002': '小街街道', '530426103': '甸中镇', '530426104': '化念镇', '530426105': '塔甸镇', '530426201': '岔河乡', '530426202': '大龙潭乡', '530426203': '富良棚乡', '530427001': '桂山街道办事处', '530427002': '古城街道办事处', '530427100': '扬武镇', '530427101': '漠沙镇', '530427102': '戛洒镇', '530427103': '水塘镇', '530427200': '平甸乡', '530427201': '新化乡', '530427202': '建兴乡', '530427203': '老厂乡', '530427204': '者竜乡', '530427205': '平掌乡', '530428001': '红河街道办事处', '530428002': '澧江街道办事处', '530428003': '甘庄街道办事处', '530428101': '曼来镇', '530428102': '因远镇', '530428201': '龙潭乡', '530428202': '羊街乡', '530428203': '那诺乡', '530428204': '洼垤乡', '530428205': '咪哩乡', '530450001': '九龙片区', '530450002': '南片区', '530450003': '龙泉园区', '530502001': '兰城街道办事处', '530502002': '永昌街道办事处', '530502003': '九隆街道办事处', '530502004': '青华街道办事处', '530502101': '板桥镇', '530502102': '河图镇', '530502103': '汉庄镇', '530502104': '蒲缥镇', '530502105': '瓦窑镇', '530502106': '潞江镇', '530502201': '金鸡乡', '530502202': '辛街乡', '530502203': '西邑乡', '530502204': '丙麻乡', '530502205': '瓦渡乡', '530502206': '水寨乡', '530502207': '瓦马彝族白族乡', '530502208': '瓦房彝族苗族乡', '530502209': '杨柳白族彝族乡', '530502210': '芒宽彝族傣族乡', '530502401': '保山工贸园区', '530502501': '保山市高黎贡山旅游渡假区', '530521101': '甸阳镇', '530521102': '由旺镇', '530521103': '姚关镇', '530521104': '仁和镇', '530521105': '太平镇', '530521201': '万兴乡', '530521202': '摆榔彝族布朗族乡', '530521203': '酒房乡', '530521204': '旧城乡', '530521205': '木老元布朗族彝族乡', '530521206': '老麦乡', '530521207': '何元乡', '530521208': '水长乡', '530521401': '保山市水长工业园区', '530523101': '龙山镇', '530523102': '镇安镇', '530523103': '勐糯镇', '530523104': '腊勐镇', '530523105': '象达镇', '530523201': '龙江乡', '530523203': '碧寨乡', '530523204': '龙新乡', '530523206': '平达乡', '530523207': '木城彝族傈僳族乡', '530524101': '田园镇', '530524102': '漭水镇', '530524103': '柯街镇', '530524104': '卡斯镇', '530524105': '勐统镇', '530524106': '温泉镇', '530524107': '大田坝镇', '530524108': '鸡飞镇', '530524109': '翁堵镇', '530524205': '湾甸傣族乡', '530524206': '更戛乡', '530524207': '珠街彝族乡', '530524208': '耈街彝族苗族乡', '530581101': '腾越镇', '530581102': '固东镇', '530581103': '滇滩镇', '530581104': '猴桥镇', '530581105': '和顺镇', '530581106': '界头镇', '530581107': '曲石镇', '530581108': '明光镇', '530581109': '中和镇', '530581110': '芒棒镇', '530581111': '荷花镇', '530581201': '马站乡', '530581202': '北海乡', '530581203': '清水乡', '530581204': '五合乡', '530581205': '新华乡', '530581206': '蒲川乡', '530581207': '团田乡', '530581208': '腾冲经济技术开发区', '530590001': '高黎贡山旅游度假区', '530591001': '保山工贸园区', '530602001': '凤凰街道办事处', '530602002': '龙泉街道办事处', '530602003': '太平街道办事处', '530602101': '旧圃镇', '530602102': '永丰镇', '530602103': '北闸镇', '530602104': '盘河镇', '530602105': '靖安镇', '530602106': '洒渔镇', '530602107': '乐居镇', '530602108': '苏家院镇', '530602109': '大山包镇', '530602110': '炎山镇', '530602201': '布嘎回族乡', '530602202': '守望回族乡', '530602203': '小龙洞回族彝族乡', '530602206': '青岗岭回族彝族乡', '530602210': '苏甲乡', '530602212': '大寨子乡', '530602214': '田坝乡', '530621101': '文屏镇', '530621102': '水磨镇', '530621103': '龙头山镇', '530621104': '小寨镇', '530621105': '江底镇', '530621106': '火德红镇', '530621107': '龙树镇', '530621108': '新街镇', '530621109': '梭山镇', '530621110': '乐红镇', '530621201': '桃源回族乡', '530621202': '茨院回族乡', '530622101': '白鹤滩镇', '530622102': '大寨镇', '530622103': '小河镇', '530622104': '药山镇', '530622105': '马树镇', '530622106': '老店镇', '530622107': '茂租镇', '530622108': '东坪镇', '530622109': '新店镇', '530622110': '崇溪镇', '530622111': '金塘镇', '530622112': '蒙姑镇', '530622203': '红山乡', '530622205': '包谷垴乡', '530622206': '中寨乡', '530622209': '炉房乡', '530623101': '盐井镇', '530623102': '普洱镇', '530623103': '豆沙镇', '530623104': '中和镇', '530623105': '庙坝镇', '530623106': '柿子镇', '530623201': '兴隆乡', '530623202': '落雁乡', '530623203': '滩头乡', '530623204': '牛寨乡', '530624101': '翠华镇', '530624102': '玉碗镇', '530624103': '吉利镇', '530624104': '天星镇', '530624105': '木杆镇', '530624106': '悦乐镇', '530624107': '寿山镇', '530624108': '高桥镇', '530624201': '上高桥回族彝族苗族乡', '530625101': '溪洛渡镇', '530625102': '桧溪镇', '530625103': '黄华镇', '530625104': '茂林镇', '530625105': '大兴镇', '530625106': '莲峰镇', '530625107': '务基镇', '530625108': '码口镇', '530625201': '团结乡', '530625202': '细沙乡', '530625203': '青胜乡', '530625205': '马楠苗族彝族乡', '530625206': '水竹乡', '530625207': '墨翰乡', '530625208': '伍寨彝族苗族乡', '530626101': '中城镇', '530626102': '南岸镇', '530626103': '新滩镇', '530626104': '会仪镇', '530626105': '板栗镇', '530627001': '乌峰街道办事处', '530627002': '南台街道办事处', '530627003': '旧府街道办事处', '530627102': '泼机镇', '530627103': '黑树镇', '530627104': '母享镇', '530627105': '大湾镇', '530627106': '以勒镇', '530627107': '赤水源镇', '530627108': '芒部镇', '530627109': '雨河镇', '530627110': '罗坎镇', '530627111': '牛场镇', '530627112': '五德镇', '530627113': '坡头镇', '530627114': '以古镇', '530627115': '场坝镇', '530627116': '塘房镇', '530627117': '中屯镇', '530627118': '木卓镇', '530627119': '盐源镇', '530627120': '碗厂镇', '530627121': '坪上镇', '530627202': '鱼洞乡', '530627203': '花朗乡', '530627204': '尖山乡', '530627208': '杉树乡', '530627209': '花山乡', '530627211': '果珠彝族乡', '530627212': '林口彝族苗族乡', '530628101': '角奎镇', '530628102': '洛泽河镇', '530628103': '牛街镇', '530628104': '海子镇', '530628105': '荞山镇', '530628106': '龙安镇', '530628107': '钟鸣镇', '530628108': '两河镇', '530628109': '小草坝镇', '530628110': '龙海镇', '530628201': '龙街苗族彝族乡', '530628202': '奎香苗族彝族乡', '530628203': '树林彝族苗族乡', '530628211': '柳溪苗族乡', '530628212': '洛旺乡', '530629101': '扎西镇', '530629102': '旧城镇', '530629103': '罗布镇', '530629104': '林凤镇', '530629105': '长安镇', '530629106': '庙沟镇', '530629107': '水田镇', '530629201': '双河苗族彝族乡', '530629202': '高田乡', '530629207': '三桃乡', '530630001': '云富街道办事处', '530630101': '向家坝镇', '530630102': '太平镇', '530630103': '两碗镇', '530702001': '西安街道办事处', '530702002': '大研街道办事处', '530702003': '祥和街道办事处', '530702004': '束河街道办事处', '530702005': '金山街道办事处', '530702006': '开南街道办事处', '530702007': '文化街道办事处', '530702101': '金安镇', '530702102': '七河镇', '530702203': '大东乡', '530702205': '金江白族乡', '530721101': '黄山镇', '530721102': '石鼓镇', '530721103': '巨甸镇', '530721104': '白沙镇', '530721105': '拉市镇', '530721106': '奉科镇', '530721107': '鸣音镇', '530721203': '太安乡', '530721204': '龙蟠乡', '530721205': '黎明傈僳族乡', '530721206': '鲁甸乡', '530721207': '塔城乡', '530721208': '大具乡', '530721209': '宝山乡', '530721212': '石头白族乡', '530721213': '九河白族乡', '530722101': '永北镇', '530722102': '仁和镇', '530722103': '期纳镇', '530722104': '三川镇', '530722105': '程海镇', '530722106': '涛源镇', '530722107': '鲁地拉镇', '530722108': '片角镇', '530722109': '顺州镇', '530722201': '羊坪彝族乡', '530722202': '六德傈僳族彝族乡', '530722203': '东山傈僳族彝族乡', '530722207': '光华傈僳族彝族乡', '530722208': '松坪傈僳族乡', '530722209': '大安彝族纳西族乡', '530723101': '中心镇', '530723102': '荣将镇', '530723103': '兴泉镇', '530723104': '石龙坝镇', '530723202': '新庄傈僳族傣族乡', '530723203': '通达傈僳族乡', '530723204': '永兴傈僳族乡', '530723205': '船房傈僳族傣族乡', '530724101': '大兴镇', '530724201': '拉伯乡', '530724202': '永宁乡', '530724203': '翠玉傈僳族普米族乡', '530724204': '红桥乡', '530724205': '宁利乡', '530724206': '金棉乡', '530724207': '西川乡', '530724208': '西布河乡', '530724209': '战河乡', '530724210': '永宁坪乡', '530724211': '跑马坪乡', '530724212': '蝉战河乡', '530724213': '新营盘乡', '530724214': '烂泥箐乡', '530802101': '思茅镇', '530802102': '南屏镇', '530802103': '倚象镇', '530802104': '思茅港镇', '530802105': '六顺镇', '530802201': '龙潭彝族傣族乡', '530802202': '云仙彝族乡', '530821101': '宁洱镇', '530821102': '磨黑镇', '530821103': '德化镇', '530821104': '同心镇', '530821105': '勐先镇', '530821106': '梅子镇', '530821201': '德安乡', '530821205': '普义乡', '530821206': '黎明乡', '530822101': '联珠镇', '530822102': '通关镇', '530822103': '龙坝镇', '530822104': '新安镇', '530822105': '团田镇', '530822106': '新抚镇', '530822107': '景星镇', '530822108': '鱼塘镇', '530822109': '文武镇', '530822110': '坝溜镇', '530822111': '泗南江镇', '530822112': '雅邑镇', '530822203': '孟弄彝族乡', '530822208': '龙潭乡', '530822212': '那哈乡', '530823101': '锦屏镇', '530823102': '文井镇', '530823103': '漫湾镇', '530823104': '大朝山东镇', '530823105': '花山镇', '530823106': '大街镇', '530823107': '太忠镇', '530823108': '文龙镇', '530823109': '安定镇', '530823110': '景福镇', '530823201': '曼等乡', '530823205': '龙街乡', '530823208': '林街乡', '530824101': '威远镇', '530824102': '永平镇', '530824103': '正兴镇', '530824104': '民乐镇', '530824105': '凤山镇', '530824106': '景谷镇', '530824201': '碧安乡', '530824204': '益智乡', '530824205': '半坡乡', '530824206': '勐班乡', '530825101': '恩乐镇', '530825102': '按板镇', '530825103': '勐大镇', '530825104': '者东镇', '530825105': '九甲镇', '530825106': '古城镇', '530825107': '振太镇', '530825108': '和平镇', '530825201': '田坝乡', '530826101': '勐烈镇', '530826102': '整董镇', '530826103': '曲水镇', '530826104': '宝藏镇', '530826105': '康平镇', '530826202': '国庆乡', '530826203': '嘉禾乡', '530827101': '娜允镇', '530827102': '勐马镇', '530827103': '芒信镇', '530827104': '富岩镇', '530827201': '景信乡', '530827202': '公信乡', '530828101': '勐朗镇', '530828102': '上允镇', '530828103': '糯扎渡镇', '530828104': '惠民镇', '530828105': '东回镇', '530828201': '发展河哈尼族乡', '530828202': '谦六彝族乡', '530828203': '糯福乡', '530828204': '东河乡', '530828205': '大山乡', '530828206': '南岭乡', '530828207': '雪林佤族乡', '530828208': '木戛乡', '530828209': '酒井哈尼族乡', '530828212': '拉巴乡', '530828213': '竹塘乡', '530828214': '富邦乡', '530828215': '安康佤族乡', '530828216': '文东佤族乡', '530828217': '富东乡', '530829101': '勐梭镇', '530829102': '勐卡镇', '530829103': '翁嘎科镇', '530829104': '中课镇', '530829105': '新厂镇', '530829202': '力所拉祜族乡', '530829203': '岳宋乡', '530902001': '凤翔街道办事处', '530902002': '忙畔街道办事处', '530902102': '博尚镇', '530902202': '南美乡', '530902203': '蚂蚁堆乡', '530902204': '章驮乡', '530902206': '圈内乡', '530902207': '马台乡', '530902208': '邦东乡', '530902209': '平村乡', '530921101': '凤山镇', '530921102': '鲁史镇', '530921103': '小湾镇', '530921104': '营盘镇', '530921105': '三岔河镇', '530921106': '勐佑镇', '530921107': '雪山镇', '530921108': '洛党镇', '530921201': '诗礼乡', '530921202': '新华乡', '530921204': '大寺乡', '530921206': '腰街乡', '530921207': '郭大寨乡', '530922101': '爱华镇', '530922102': '漫湾镇', '530922103': '大朝山西镇', '530922104': '涌宝镇', '530922105': '茂兰镇', '530922106': '幸福镇', '530922107': '大寨镇', '530922201': '忙怀乡', '530922202': '晓街乡', '530922203': '茶房乡', '530922204': '栗树乡', '530922205': '后箐乡', '530922501': '幸福农场', '530922502': '新城农场', '530923101': '德党镇', '530923102': '小勐统镇', '530923103': '永康镇', '530923203': '勐板乡', '530923204': '亚练乡', '530923205': '乌木龙乡', '530923206': '大雪山乡', '530923207': '班卡乡', '530923208': '崇岗乡', '530923209': '大山乡', '530923401': '勐底农场', '530924101': '凤尾镇', '530924102': '勐捧镇', '530924103': '南伞镇', '530924201': '忙丙乡', '530924202': '勐堆乡', '530924204': '木场乡', '530924205': '军赛乡', '530925101': '勐勐镇', '530925102': '勐库镇', '530925201': '沙河乡', '530925202': '大文乡', '530925203': '忙糯乡', '530925205': '邦丙乡', '530926100': '耿马镇', '530926101': '勐永镇', '530926102': '勐撒镇', '530926103': '孟定镇', '530926200': '大兴乡', '530926201': '芒洪乡', '530926202': '四排山乡', '530926203': '贺派乡', '530926204': '勐简乡', '530926401': '耿马华侨农场', '530926402': '勐撒农场', '530926403': '孟定农场', '530927101': '勐董镇', '530927102': '岩帅镇', '530927103': '勐省镇', '530927104': '芒卡镇', '530927202': '单甲乡', '530927203': '糯良乡', '530927204': '勐来乡', '530927205': '勐角乡', '530927206': '班洪乡', '530927207': '班老乡', '530927401': '勐省农场', '530928001': '临沧工业园区', '530929001': '边境经济合作区', '532301101': '鹿城镇', '532301102': '东瓜镇', '532301103': '吕合镇', '532301104': '紫溪镇', '532301105': '东华镇', '532301106': '子午镇', '532301107': '苍岭镇', '532301108': '三街镇', '532301109': '八角镇', '532301110': '中山镇', '532301111': '新村镇', '532301112': '西舍路镇', '532301201': '树苴乡', '532301202': '大过口乡', '532301203': '大地基乡', '532322101': '妥甸镇', '532322102': '大庄镇', '532322103': '法脿镇', '532322104': '鄂嘉镇', '532322105': '大麦地镇', '532322201': '安龙堡乡', '532322202': '爱尼山乡', '532322203': '独田乡', '532323101': '共和镇', '532323102': '新桥镇', '532323103': '江坡镇', '532323104': '凤屯镇', '532323201': '蟠猫乡', '532323202': '戌街乡', '532323203': '安乐乡', '532324101': '龙川镇', '532324102': '沙桥镇', '532324103': '五街镇', '532324104': '红土坡镇', '532324105': '马街镇', '532324106': '兔街镇', '532324201': '雨露白族自治乡', '532324202': '一街乡', '532324203': '罗武庄乡', '532324204': '五顶山乡', '532325101': '栋川镇', '532325102': '光禄镇', '532325103': '前场镇', '532325104': '弥兴镇', '532325105': '太平镇', '532325106': '官屯镇', '532325201': '适中乡', '532325202': '左门乡', '532325204': '大河口乡', '532326101': '金碧镇', '532326102': '石羊镇', '532326103': '六苴镇', '532326104': '龙街镇', '532326105': '新街镇', '532326106': '赵家店镇', '532326107': '三岔河镇', '532326108': '桂花镇', '532326204': '昙华乡', '532326206': '湾碧傣族傈僳族自治乡', '532326207': '铁锁乡', '532326208': '三台乡', '532327101': '永定镇', '532327102': '宜就镇', '532327103': '中和镇', '532327201': '莲池乡', '532327202': '维的乡', '532327203': '猛虎乡', '532327204': '永兴乡', '532328101': '元马镇', '532328103': '黄瓜园镇', '532328104': '羊街镇', '532328202': '老城乡', '532328203': '物茂乡', '532328204': '江边乡', '532328205': '新华乡', '532328206': '平田乡', '532328209': '凉山乡', '532328210': '姜驿乡', '532329101': '狮山镇', '532329102': '高桥镇', '532329103': '猫街镇', '532329104': '插甸镇', '532329105': '白路镇', '532329106': '万德镇', '532329107': '己衣镇', '532329202': '田心乡', '532329203': '发窝乡', '532329207': '环州乡', '532329208': '东坡傣族自治乡', '532331101': '金山镇', '532331102': '仁兴镇', '532331103': '碧城镇', '532331104': '勤丰镇', '532331105': '一平浪镇', '532331106': '广通镇', '532331107': '黑井镇', '532331108': '土官镇', '532331109': '彩云镇', '532331110': '和平镇', '532331111': '恐龙山镇', '532331201': '中村乡', '532331203': '高峰乡', '532331204': '妥安乡', '532501001': '城区街道办事处', '532501101': '锡城镇', '532501102': '沙甸镇', '532501103': '鸡街镇', '532501104': '大屯镇', '532501106': '老厂镇', '532501107': '卡房镇', '532501108': '蔓耗镇', '532501160': '采空区', '532501202': '贾沙乡', '532501203': '保和乡', '532502001': '乐白道街道办事处', '532502002': '灵泉街道办事处', '532502101': '中和营镇', '532502102': '小龙潭镇', '532502201': '大庄回族乡', '532502202': '羊街乡', '532502203': '碑格乡', '532503101': '文澜镇', '532503102': '草坝镇', '532503103': '雨过铺镇', '532503104': '新安所镇', '532503105': '芷村镇', '532503106': '鸣鹫镇', '532503107': '冷泉镇', '532503201': '期路白苗族乡', '532503202': '老寨苗族乡', '532503203': '水田乡', '532503204': '西北勒乡', '532504101': '弥阳镇', '532504102': '新哨镇', '532504103': '虹溪镇', '532504104': '竹园镇', '532504105': '朋普镇', '532504106': '巡检司镇', '532504107': '西一镇', '532504108': '西二镇', '532504109': '西三镇', '532504110': '东山镇', '532504202': '五山乡', '532504203': '江边乡', '532523101': '玉屏镇', '532523102': '新现镇', '532523103': '和平镇', '532523104': '白河镇', '532523204': '白云乡', '532523205': '新华乡', '532523206': '湾塘乡', '532524101': '临安镇', '532524102': '官厅镇', '532524103': '西庄镇', '532524104': '青龙镇', '532524105': '南庄镇', '532524106': '岔科镇', '532524107': '曲江镇', '532524108': '面甸镇', '532524201': '普雄乡', '532524202': '李浩寨乡', '532524203': '坡头乡', '532524204': '盘江乡', '532524205': '利民乡', '532524206': '甸尾乡', '532525101': '异龙镇', '532525102': '宝秀镇', '532525103': '坝心镇', '532525104': '龙朋镇', '532525105': '龙武镇', '532525106': '哨冲镇', '532525107': '牛街镇', '532525201': '新城乡', '532525202': '大桥乡', '532527101': '中枢镇', '532527102': '金马镇', '532527104': '旧城镇', '532527106': '午街铺镇', '532527107': '白水镇', '532527201': '向阳乡', '532527202': '三塘乡', '532527203': '永宁乡', '532528101': '南沙镇', '532528102': '新街镇', '532528202': '牛角寨乡', '532528203': '沙拉托乡', '532528204': '嘎娘乡', '532528205': '上新城乡', '532528206': '小新街乡', '532528207': '逢春岭乡', '532528208': '大坪乡', '532528209': '攀枝花乡', '532528210': '黄茅岭乡', '532528211': '黄草岭乡', '532528212': '俄扎乡', '532528213': '马街乡', '532529101': '迤萨镇', '532529102': '甲寅镇', '532529103': '宝华镇', '532529104': '乐育镇', '532529105': '浪堤镇', '532529203': '洛恩乡', '532529204': '石头寨乡', '532529205': '阿扎河乡', '532529208': '大羊街乡', '532529209': '车古乡', '532529210': '架车乡', '532529211': '垤玛乡', '532529212': '三村乡', '532530101': '金河镇', '532530102': '金水河镇', '532530103': '勐拉镇', '532530104': '老勐镇', '532530202': '铜厂乡', '532530204': '老集寨乡', '532530205': '者米拉祜乡', '532530206': '阿得博乡', '532530207': '沙依坡乡', '532530208': '大寨乡', '532530209': '马鞍底乡', '532530210': '勐桥乡', '532530211': '营盘乡', '532531101': '大兴镇', '532531102': '牛孔镇', '532531103': '大黑山镇', '532531104': '平河镇', '532531201': '戈奎乡', '532531203': '大水沟乡', '532531205': '半坡乡', '532531206': '骑马坝乡', '532531207': '三猛乡', '532532101': '河口镇', '532532102': '南溪镇', '532532201': '老范寨乡', '532532202': '桥头苗族壮族乡', '532532203': '瑶山乡', '532532204': '莲花滩乡', '532601001': '开化街道办事处', '532601002': '卧龙办事处', '532601003': '新平街道办事处', '532601102': '古木镇', '532601103': '平坝镇', '532601104': '马塘镇', '532601105': '德厚镇', '532601106': '小街镇', '532601107': '薄竹镇', '532601108': '追栗街镇', '532601201': '东山彝族乡', '532601202': '柳井彝族乡', '532601203': '新街乡', '532601204': '喜古乡', '532601205': '坝心彝族乡', '532601206': '秉烈彝族乡', '532601207': '红甸回族乡', '532601401': '文山市三七产业园区管理委员会', '532601402': '文山市马塘工业园区管理委员会', '532622101': '江那镇', '532622102': '平远镇', '532622103': '稼依镇', '532622104': '阿猛镇', '532622201': '阿舍彝族乡', '532622202': '维末彝族乡', '532622203': '盘龙彝族乡', '532622204': '八嘎乡', '532622205': '者腊乡', '532622206': '蚌峨乡', '532622207': '干河彝族乡', '532622501': '平远管理区', '532622502': '稼依管理区', '532622503': '回龙管理区', '532623101': '西洒镇', '532623102': '兴街镇', '532623201': '蚌谷乡', '532623202': '莲花塘乡', '532623203': '新马街乡', '532623204': '柏林乡', '532623205': '法斗乡', '532623206': '董马乡', '532623207': '鸡街乡', '532624101': '麻栗镇', '532624102': '大坪镇', '532624103': '董干镇', '532624104': '天保镇', '532624201': '猛硐瑶族乡', '532624202': '下金厂乡', '532624203': '八布乡', '532624204': '六河乡', '532624205': '杨万乡', '532624206': '铁厂乡', '532624207': '马街乡', '532625101': '马白镇', '532625102': '八寨镇', '532625103': '仁和镇', '532625104': '木厂镇', '532625105': '夹寒箐镇', '532625106': '小坝子镇', '532625107': '都龙镇', '532625108': '金厂镇', '532625109': '坡脚镇', '532625201': '南捞乡', '532625202': '大栗树乡', '532625203': '篾厂乡', '532625204': '古林箐乡', '532625501': '健康农场', '532626101': '锦屏镇', '532626102': '曰者镇', '532626103': '双龙营镇', '532626201': '八道哨彝族乡', '532626202': '天星乡', '532626203': '平寨乡', '532626204': '树皮彝族乡', '532626205': '腻脚彝族乡', '532626206': '新店彝族乡', '532626207': '舍得彝族乡', '532626208': '官寨乡', '532626209': '温浏乡', '532627101': '莲城镇', '532627102': '八宝镇', '532627103': '南屏镇', '532627104': '珠街镇', '532627105': '那洒镇', '532627106': '珠琳镇', '532627107': '坝美镇', '532627201': '董堡乡', '532627202': '旧莫乡', '532627203': '杨柳井乡', '532627204': '板蚌乡', '532627205': '曙光乡', '532627206': '黑支果乡', '532627207': '篆角乡', '532627208': '五珠乡', '532627209': '者兔乡', '532627210': '者太乡', '532627211': '底圩乡', '532628101': '新华镇', '532628102': '归朝镇', '532628103': '剥隘镇', '532628104': '里达镇', '532628105': '田蓬镇', '532628106': '木央镇', '532628201': '板仑乡', '532628202': '谷拉乡', '532628203': '者桑乡', '532628204': '那能乡', '532628205': '洞波瑶族乡', '532628206': '阿用乡', '532628207': '花甲乡', '532801001': '允景洪街道办事', '532801102': '嘎洒镇', '532801103': '勐龙镇', '532801104': '勐罕镇', '532801105': '勐养镇', '532801106': '普文镇', '532801202': '景哈乡', '532801203': '景讷乡', '532801204': '大渡岗乡', '532801205': '勐旺乡', '532801206': '基诺乡', '532801401': '景洪农场', '532801402': '东风农场', '532801403': '橄榄坝农场', '532801404': '勐养农场', '532801405': '大渡岗农场', '532801406': '西双版纳州渡假区管理委员', '532801407': '景洪工业园区', '532801408': '西双版纳监狱', '532822101': '勐海镇', '532822102': '打洛镇', '532822103': '勐混镇', '532822104': '勐遮镇', '532822105': '勐满镇', '532822106': '勐阿镇', '532822201': '勐宋乡', '532822202': '勐往乡', '532822203': '格朗和乡', '532822204': '布朗山乡', '532822205': '西定乡', '532822401': '黎明农场', '532823101': '勐腊镇', '532823102': '勐捧镇', '532823103': '勐满镇', '532823104': '勐仑镇', '532823105': '西双版纳磨憨经济开发区（尚勇镇）', '532823106': '勐伴镇', '532823107': '关累镇', '532823108': '易武镇', '532823202': '象明乡', '532823203': '瑶区乡', '532823401': '勐腊农场', '532823402': '勐捧农场', '532823403': '勐满农场', '532823404': '勐醒农场', '532901001': '大理创新工业园区天井办事处', '532901002': '大理创新工业园区满江办事处', '532901101': '下关镇', '532901102': '大理镇', '532901103': '大理创新工业园区凤仪镇', '532901104': '喜洲镇', '532901105': '海东镇', '532901106': '挖色镇', '532901107': '湾桥镇', '532901108': '银桥镇', '532901109': '双廊镇', '532901110': '上关镇', '532901201': '太邑彝族乡', '532922101': '苍山西镇', '532922102': '漾江镇', '532922103': '平坡镇', '532922104': '顺濞镇', '532922201': '富恒乡', '532922202': '太平乡', '532922204': '瓦厂乡', '532922205': '龙潭乡', '532922206': '鸡街乡', '532923101': '祥城镇', '532923102': '沙龙镇', '532923103': '云南驿镇', '532923104': '下庄镇', '532923105': '普棚镇', '532923106': '刘厂镇', '532923107': '禾甸镇', '532923108': '米甸镇', '532923201': '鹿鸣乡', '532923202': '东山彝族乡', '532924101': '金牛镇', '532924102': '宾居镇', '532924103': '州城镇', '532924104': '大营镇', '532924105': '鸡足山镇', '532924106': '力角镇', '532924107': '平川镇', '532924108': '乔甸镇', '532924201': '钟英傈僳族彝族乡', '532924202': '拉乌彝族乡', '532925101': '弥城镇', '532925102': '红岩镇', '532925103': '新街镇', '532925104': '寅街镇', '532925105': '苴力镇', '532925106': '密祉镇', '532925203': '德苴乡', '532925204': '牛街彝族乡', '532926101': '南涧镇', '532926102': '小湾东镇', '532926103': '公郎镇', '532926104': '宝华镇', '532926105': '无量山镇', '532926201': '拥翠乡', '532926202': '乐秋乡', '532926203': '碧溪乡', '532927101': '南诏镇', '532927102': '庙街镇', '532927103': '大仓镇', '532927104': '永建镇', '532927201': '巍宝山乡', '532927202': '马鞍山乡', '532927203': '紫金乡', '532927204': '五印乡', '532927205': '牛街乡', '532927206': '青华乡', '532928101': '博南镇', '532928102': '杉阳镇', '532928103': '龙街镇', '532928201': '龙门乡', '532928202': '北斗彝族乡', '532928203': '厂街彝族乡', '532928204': '水泄彝族乡', '532929101': '诺邓镇', '532929102': '功果桥镇', '532929103': '漕涧镇', '532929104': '白石镇', '532929201': '宝丰乡', '532929202': '关坪乡', '532929203': '团结彝族乡', '532929204': '长新乡', '532929205': '检槽乡', '532929206': '苗尾傈僳族乡', '532929207': '民建乡', '532930101': '茈碧湖镇', '532930102': '邓川镇', '532930103': '右所镇', '532930104': '三营镇', '532930105': '凤羽镇', '532930106': '乔后镇', '532930201': '牛街乡', '532930202': '炼铁乡', '532930203': '西山乡', '532931101': '金华镇', '532931102': '老君山镇', '532931103': '甸南镇', '532931104': '沙溪镇', '532931105': '马登镇', '532931201': '羊岑乡', '532931202': '弥沙乡', '532931203': '象图乡', '532932101': '云鹤镇', '532932102': '辛屯镇', '532932103': '松桂镇', '532932104': '黄坪镇', '532932105': '草海镇', '532932106': '西邑镇', '532932107': '龙开口镇', '532932201': '金墩乡', '532932203': '六合彝族乡', '533102101': '勐卯镇', '533102102': '畹町镇', '533102103': '弄岛镇', '533102201': '姐相乡', '533102202': '户育乡', '533102203': '勐秀乡', '533103001': '勐焕街道办事处', '533103101': '芒市镇', '533103102': '遮放镇', '533103103': '勐戛镇', '533103104': '芒海镇', '533103105': '风平镇', '533103201': '轩岗乡', '533103202': '江东乡', '533103203': '西山乡', '533103204': '中山乡', '533103205': '三台山乡', '533103206': '五岔路乡', '533122101': '遮岛镇', '533122102': '芒东镇', '533122103': '勐养镇', '533122201': '平山乡', '533122202': '小厂乡', '533122203': '大厂乡', '533122204': '九保阿昌族乡', '533122205': '曩宋阿昌族乡', '533122206': '河西乡', '533123101': '平原镇', '533123102': '旧城镇', '533123103': '那邦镇', '533123104': '弄璋镇', '533123105': '盏西镇', '533123106': '卡场镇', '533123107': '昔马镇', '533123108': '太平镇', '533123201': '新城乡', '533123202': '油松岭乡', '533123203': '芒章乡', '533123204': '支那乡', '533123205': '苏典傈僳族乡', '533123206': '勐弄乡', '533123207': '铜壁关乡', '533124101': '章凤镇', '533124102': '陇把镇', '533124103': '景罕镇', '533124104': '城子镇', '533124201': '户撒阿昌族乡', '533124202': '护国乡', '533124203': '清平乡', '533124204': '王子树乡', '533124205': '勐约乡', '533301101': '六库镇', '533301102': '鲁掌镇', '533301103': '片马镇', '533301104': '上江镇', '533301105': '老窝镇', '533301106': '大兴地镇', '533301204': '称杆乡', '533301205': '古登乡', '533301206': '洛本卓乡', '533323101': '上帕镇', '533323201': '匹河乡', '533323202': '子里甲乡', '533323203': '架科底乡', '533323204': '鹿马登乡', '533323205': '石月亮乡', '533323206': '马吉乡', '533324101': '茨开镇', '533324102': '丙中洛镇', '533324202': '捧当乡', '533324203': '普拉底乡', '533324204': '独龙江乡', '533325101': '金顶镇', '533325102': '啦井镇', '533325103': '营盘镇', '533325104': '通甸镇', '533325201': '河西乡', '533325202': '中排乡', '533325203': '石登乡', '533325204': '兔峨乡', '533401101': '建塘镇', '533401102': '小中甸镇', '533401103': '虎跳峡镇', '533401104': '金江镇', '533401201': '上江乡', '533401202': '三坝乡', '533401203': '洛吉乡', '533401204': '尼西乡', '533401205': '格咱乡', '533401206': '东旺乡', '533401207': '五境乡', '533422101': '升平镇', '533422102': '奔子栏镇', '533422201': '佛山乡', '533422202': '云岭乡', '533422203': '燕门乡', '533422204': '拖顶乡', '533422205': '霞若乡', '533422206': '羊拉乡', '533423101': '保和镇', '533423102': '叶枝镇', '533423103': '塔城镇', '533423201': '永春乡', '533423202': '攀天阁乡', '533423203': '白济汛乡', '533423204': '康普乡', '533423205': '巴迪乡', '533423206': '中路乡', '533423207': '维登乡'
    }

    def aes_ecb_encrypt(self, plaintext, key=None):
        """
        AES ECB模式加密
        :param plaintext: 明文（字符串）
        :param key: 密钥（16、24或32字节）
        :return: base64编码的密文
        """
        # 确保密钥长度正确
        key = key if key else self.key
        if len(key) not in [16, 24, 32]:
            raise ValueError("密钥长度必须是16、24或32字节")

        # 创建AES ECB加密器
        cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)

        # 填充明文（PKCS7填充）
        padded_data = pad(plaintext.encode('utf-8'), AES.block_size)

        # 加密
        encrypted_data = cipher.encrypt(padded_data)

        # 返回base64编码的密文
        return base64.b64encode(encrypted_data).decode('utf-8')

    def aes_ecb_decrypt(self, encrypted_text, key=None):
        """
        AES ECB模式解密
        :param encrypted_text: base64编码的密文
        :param key: 密钥（16、24或32字节）
        :return: 明文
        """
        # 确保密钥长度正确
        key = key if key else self.key
        if len(key) not in [16, 24, 32]:
            raise ValueError("密钥长度必须是16、24或32字节")

        # 创建AES ECB解密器
        cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)

        # 解码base64
        encrypted_data = base64.b64decode(encrypted_text.strip())

        # 解密
        try:
            decrypted_data = cipher.decrypt(encrypted_data)
            # 去除填充
            plaintext = unpad(decrypted_data, AES.block_size)
        except:
            # print(encrypted_text)
            plaintext = encrypted_text

        return plaintext.decode('utf-8')

    @classmethod
    def update_settings(cls, settings) -> None:
        downloader_middlewares = settings.getdict("DOWNLOADER_MIDDLEWARES")
        new_settings = {
            **(cls.custom_settings or {}),
            **{
                # "COOKIES_ENABLED": False,
                "DOWNLOAD_TIMEOUT": 200,
                # "CONCURRENT_REQUESTS": 2,
                "HTTPERROR_ALLOWED_CODES": [302, 400, 404, 407, 500, 200, 202, 502, 429, 521],
                # "DOWNLOAD_DELAY": 5,
                "DOWNLOADER_MIDDLEWARES": {
                    # "components.middlewares.downloadmiddlewares.public.jsl_middlewares.JslMiddleware": 543,
                    **downloader_middlewares
                }
            },
        }
        settings.setdict(new_settings or {}, priority="spider")

    def start_requests(self):
        url = "https://czt.yn.gov.cn/ygyc/lron/v2/bones/th/policy/search?"
        params = {
            # "region": "53",
            "enabled": "Y",
            "sort": "11",
            "page": "1",
            "pageSize": "50",
            "classify": "a",
            "remote": "Y"
        }
        for i in ['b', 'c']:
            params['classify'] = i
            meta = {"params": params, "url": url}
            yield scrapy.Request(url + urllib.parse.urlencode(params), callback=self.parse_list, meta=meta)

    def parse_list(self, response, **kwargs):
        data = json.loads(self.aes_ecb_decrypt(response.text.encode('utf-8')))
        meta = response.meta
        prev_item = response.meta.get('item')
        for elem in data['data']['list']:
            item = Item()
            _id = elem['id']
            if elem.get('organization'):

                item['source'] = elem['organization']['name']
            else:
                print(elem)
            item['source_url'] = f"https://czt.yn.gov.cn/ygyc/api/v2/server/th/policy/info?id={elem['id']}&enabled={elem['enabled']}&_progress=true"
            item['publish_date'] = elem['publishDate']
            item['title'] = elem['title']
            yield response.follow(item['source_url'], callback=self.parse_detail, meta={'item': item})
        if response.meta.get("is_next") is not False:
            total_page = data['data']['pagination']['totalPage']
            for page_num in list(range(2, int(total_page) + 1))[:20]:
                params = meta['params']
                params['page'] = page_num
                url = meta['url']
                yield response.follow(url + urllib.parse.urlencode(params), callback=self.parse_list, meta={'item': prev_item, 'is_next': False})

    def parse_detail(self, response, **kwargs):
        item = Item() if response.meta.get('item') is None else response.meta.get('item')
        data = json.loads(self.aes_ecb_decrypt(response.text.encode('utf-8')))
        region = data['data']['region']
        if region in self.region_map.keys():
            if len(region[:4]) == 4:
                item['city'] = self.region_map[region[:4]]
            if len(region[:6]) == 6:
                item['county'] = self.region_map[region[:6]]
        item['content'] = data['data']['content']
        item['province'] = self.province
        yield item


if __name__ == "__main__":
    from scrapy import cmdline

    cmdline.execute("scrapy crawl yunnan_ygyc_policy".split())
